var map;

$(function () {
    initMap();
    setInterval(fetchAndUpdateMarkers, 20000); // 适当调整时间
});


function initMap() {

    window._AMapSecurityConfig = {
        securityJsCode: "4653ffc730063550d075a710b3c6bbfe",
    };
    AMapLoader.load({
        key: "ea3f76d8005bb0320917bdd1b75b3686", //申请好的Web端开发者key，调用 load 时必填
        version: "2.0", //指定要加载的 JS API 的版本，缺省时默认为 1.4.15
    })
        .then((AMap) => {
            map = new window.AMap.Map("map_div", {
                viewMode: '2D', //默认使用 2D 模式
                zoom: 11, //地图级别
                center: [114.365248, 30.53786], //地图中心点

            });


            //JS API 加载完成后获取AMap对象
        })
        .catch((e) => {
            console.error(e); //加载错误提示
        });
    fetchAndUpdateMarkers();

}

async function fetchAndUpdateMarkers() {
    try {
        const response = await fetch('/points'); // 获取所有用户位置数据
        const data = await response.json();
        // 添加新标记
        data.forEach(user => {
            let url;
            switch (user.status) {
                case 1:
                    url = '/img/volunteer_online.png'; // 绿色
                    user.status = '在线';
                    break;
                case 2:
                    url = '/img/help.png'; // 蓝色
                    user.status = '帮助活动中';
                    break;
                case 3:
                    url = '/img/blind.png'; // 红色
                    user.status = '求助';
                    break;
                default:
                    url = '/img/offline.png'; // 灰色
                    user.status = '离线';
                    break;
            }


            window._AMapSecurityConfig = {
                securityJsCode: "4653ffc730063550d075a710b3c6bbfe",
            };
            AMapLoader.load({
                key: "ea3f76d8005bb0320917bdd1b75b3686", //申请好的Web端开发者key，调用 load 时必填
                version: "2.0", //指定要加载的 JS API 的版本，缺省时默认为 1.4.15
            })
                .then((AMap) => {
                    // 创建坐标点
                    const marker = new AMap.Marker({
                        position: new AMap.LngLat(user.longitude, user.latitude), //经纬度对象，也可以是经纬度构成的一维数组[116.39, 39.9]
                        title: user.status,
                        icon:url,
                    });


                    map.add(marker);
                })
                .catch((e) => {
                    console.error(e); //加载错误提示
                });



        });
    } catch (error) {
        console.error('数据获取失败:', error);
    }
}